Py sdk#1
Merged
Merged
Conversation
Stdlib-only asyncio package driving a child 'h5i orchestra serve' over line-delimited JSON-RPC. Conductor/Agent mirror the Rust eDSL 1:1 (hire, work/ask/review/revise, freeze, verify, judge, apply, step/scope/patched, gate, preflight, trace); custom verdict policies are plain Python callables committed through judge_begin/commit; on_turn= lets a score (or a test) play the launcher. Typed frozen dataclasses carry the server's raw payloads back verbatim for forward compatibility; errors map to a typed exception hierarchy raised in the score's own stack frame. The patterns layer (ensemble/integrate/pipeline/arena/map_reduce/judge_panel/debate) is ported to public Python, port-faithful including the approval heuristic, the independence expectations and the mean-score tie-break. Tests: 30 unit tests against an in-process protocol mock + 2 integration tests against the real binary, including a cross-process ensemble with scripted sh boxes mirroring tests/orchestra_subprocess.rs.
… scores Per-pattern: arena (ranked independent attempts + compare rows + gated apply), pipeline (architect->implementer->hardener over materials), judge_panel (rubric scoring over recorded evidence, judges hired pre-seal), debate_then_build (conclusion steers work turns in the same run). Composed: review_escalation (cheap-model-first ladder, senior takeover with the junior artifact as material) and tournament (bracket of arena matches as separate runs, semifinals concurrent — multi-run orchestration as plain function calls). examples/README.md indexes them by when-to-reach-for-it; all compile- and import-checked.
…ry integration) test.yaml: ruff; pytest on 3.10-3.13 (integration auto-skips without a binary); sdist/wheel build + twine check + clean-venv import; and an integration job that checks out h5i-dev/h5i (branch-matched to the PR's branch, falling back to main), builds the engine with rust-cache and H5I_SKIP_WEB_BUILD=1, and runs the cross-process suite against the real 'h5i orchestra serve' — with a visible warning instead of a silent skip while the bridge isn't on the engine's default branch yet. release.yaml: on v* tags — verify tag==pyproject version, build, twine check, publish via PyPI Trusted Publishing (OIDC, 'pypi' environment), and attach dists to a GitHub release. Also fixes the two ruff findings (unused asyncio import, E731 lambda) and adds ruff to the dev extras.
… fix The engine's H5I_SKIP_WEB_BUILD flag didn't create the web/dist folder rust-embed requires at compile time (fixed upstream in h5i d18c953e, which stubs it from build.rs); the mkdir keeps older engine refs — notably the main-branch fallback — building too.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.